T-mail

18.Сервисные функции T-Mail

Принудительный опрос (Crash-Poll)

Функция FreePoll

Дистанционное управление: T-Mail server

Дистанционное задание атрибутов письма

Служебные строки в письмах и их обработка

Подтверждения об отсылке и доставке письма

 

Принудительный опрос (Crash-Poll)

Этот режим служит для того, чтобы оперативно связаться с некоторой системой и срочно провести сеанс связи.

Существуют два варианта работы в этом режиме. Первый вариант - немедленный опрос (Crash/Imm-Poll). Он выполняется, невзирая ни на что - очередь, приоритеты, статусы Hold, Freeze, Undialable, время работы системы и т.п. Когда T-Mail находится в этом режиме, он делает минимальные паузы между вызовами указанной системы и не принимает входящие вызовы. Наличие односекундного интервала между вызовами можно задать или отменить с помощью переменной Crash_Poll_Pause (t-mail.ctl).

Для того, чтобы включить этот режим, нужно нажать клавиши <Shift-Tab> и набрать адрес системы. T-Mail будет вызывать систему с этим адресом до тех пор, пока не будет проведен успешный сеанс связи. Оператор имеет возможность перейти к нормальной работе повторным нажатием <Shift-Tab>.

Второй режим работы - срочный опрос (Crash-Poll). Он, в целом, схож с первым режимом, за исключением того, что учитывает время, в которое вызываемая система принимает входящие вызовы (включая Txy-флаги нодлиста, параметр Default_OH в t-mail.ctl и параметры Time в subst.lst). Статусы Freeze, Hold и Undialable, а также EMSI-флаги HAT, HXT и HFR игнорируются. В этом режиме T-Mail будет вызывать удаленную систему только, если это разрешено в данное время. Для включения этого режима нужно нажать клавиши <Ctrl-Tab> и ввести адрес вызываемой системы. Выход из этого режима осуществляется повторным нажатием <Ctrl-Tab>.

Число попыток дозвона в режиме немедленного опроса Crash-Poll не учитывается. Если для заданного адреса имеется информация о hidden-линии(ях) (subst.lst), то T-Mail будет чередовать вызовы по основной и hidden линиям (и в случае немедленного опроса - невзирая на ограничения по времени).

Вместо задания адреса можно прямо указать телефон системы, предварив его символом '#'.

Если вы знаете, что сеансы связи с этой системой запаролены, можно явно указать пароль, отделив его символом '!' или '|' от номера телефона. Адрес системы в этом случае использовать нельзя.

Примеры задания Crash-Poll:

5030/2

#126-6972

#123-4099 !paswrd2

Во время этого режима T-Mail продолжает работу по упаковке новой почты, выполнению событий и анализу флагов. В случае выхода из программы режим принудительного опроса Crash-Poll автоматически выключается.

Функция FreePoll

Как работает FreePoll? Если эта функция включена (переменная FreePoll в файле t-mail.ctl), то перед ответом на входящий вызов T-Mail делает попытку обнаружить идентификатор CALLER ID, который может поступать вместе со словом "RING" от модема, либо в отдельной строке "CALLER ID". Это может быть идентификатор вызывающего абонента (при использовании современных телефонных станций), либо ответ определителя номера. Если такой идентификаторобнаружен иприсутствуетвфайле freepoll.ctl,то T-Mail подсчитываетсуммарныйобъемфайлов,которыедолжныбытьпереданы на системысадресами,указаннымивстрокеэтогофайла, соответствующей полученномуидентификатору.Еслиполученныйобъемменьшеуказанного в соответствующей строке файла freepoll.ctl, то T-Mail отвергает этот вызов и посылаетв модемстроку, определеннуюв переменнойModem_Reject_Answer.

Если же объем превышает указанный, то сеанс связи проводится как обычно. Кроме того, если последующий вызов с тем же CALLER ID поступит раньше, чем через интервал, указанный в freepoll.ctl, то в этом случае сеанс связи будет проведен обязательно, без расчета объемов. Следует отметить, что при использовании идентификатора вызывающего абонента модем "трубку не поднимает".

Файл freepoll.ctl представляет собой обычный текстовый файл, в котором в каждой строке описаны параметры для одного идентификатора CALLER ID. Вот синтаксис такой строки:

<caller-id>══ <limit, kBytes><interval, sec> <address list>

Пример файла freepoll.ctl:

01234567═══════════════ 30═══════════ 60═══════════ 123/34 345/67 567/90

34567═════ 5═════════════ 45═══════════ .999

09876543═══════════════ 10═══════════ 70═══════════ /3946124:345/34

Дистанционное управление: T-Mail server

Обращения к ресурсам сервера T-Mail происходит с помощью служебных писем. Это обычные письма, но адресованы они T-Mail. Поле 'To:' такого письма должно содержать конструкцию:

T-Mail|<T-password>,

где<T-password> -пароль сервера T-Mail,определенныйпеременнойв файле t-mail.ctl.

Например:

From: Andy Elkin 5030/15.1

To:══ T-Mail|my_password_no_5═════ 5030/15

Subj: Sendc:\T-Mail\files\t-2300.arj/27 /51

Поле subject служебного письма содержит задание серверу T-Mail. Тип задания определяется ключевым словом, которое должно быть задано первым в строке. Вместо конструкции <адреса> ниже задается один или несколько адресов систем, разделенных пробелами. Синтаксис заданий:

Poll <адреса>══════ заставляетT-Mail провести сеанс связи с указанными системами;

Freq <file> <адреса> √ заставляетT-Mail запроситьфайл надругой системе(системах).Приэтомзапоминается информация обэтом, и, вслучае, если будет принятфайл ссовпадающим именем,он будет переслан═══ запросившему.═══ Можно═══ указать несколько адресов через пробел;

Send <file> <адреса>√ послать файл на систему или несколько систем, если указан список адресов;

Post <file> <адреса> √ оформитьтекстовыйфайлввидеписьмаи разослать по указанным адресам;

Exec √ выполнитьтекст письмакак командныйфайл. Тело письма переписывается в файл t-serv.bat (.cmd), который затем выполняется.

Set<переменная>=<новое значение> √ изменяет значение <переменной>. Допустимо использовать любую переменную из файла t-mail.ctl. Этой возможностью следует пользоваться внимательно. Нельзя изменить таким образом значение переменных Port, Total_Messages, Log_Buffer (t-mail.ctl). Не рекомендуется изменять значения переменных Address и Packets (t-mail.ctl).

CallBack <адрес> √ функцияCallBack.Позволяетинициировать немедленный══ опрос══ (Crash-Poll)указанной системы.══ Для═══ исполнения══ этой══ функции удаленнымT-Mailнеобходимо,чтобыв поле 'To:'письма послеслова T-Mailбыл указан либоглавныйпарольсервераT-Mail,либо пароль═══ функции══ CallBack,═══ заданный══ в t-mail.ctl══ удаленной══ системы══ переменной CallBack_Password. При совпадении паролей вызов будет инициирован немедленно после распаковки такого письма. В качестве параметра <адрес> может быть указан адрес какой-либо системы или номер телефона (с префиксом #). Кроме того, после номера телефона может быть задан пароль по аналогии с заданием Crash Poll с клавиатуры (см. начало этой главы).

Примеры заданий:

To:══ T-Mail|password

Subj: Poll /2 /3 /6

 

To:══ T-Mail|password

Subj: Freq filename.ext /3 /7 .1

 

To: T-Mail|password

Subj: Post c:\txt\my_txt.doc /16 /18

 

To: T-Mail|password

Subj: Set Answer=0:00-4:00

 

To: T-mail|cbpass

Subj: CallBack 5030/15

 

To: T-mail|cbpass

Subj: CallBack#123-4567|sessionpassword

Телефон системы, по отношению к которой осуществляется действие Poll, Freq или CallBack, должен быть известен. Если в этих случаях задан адрес системы, телефон которой неизвестен, то T-Mail проигнорирует задание.

Обработка заданий происходит сразу при распаковке пакета с письмами, поэтому следует быть внимательным к заданию EXEC - если время на выполнение ощутимо и почта распаковывается "на лету", сессия может оборваться. В случае, если обработка запроса EXEC будет осуществлена во время текущего сеанса связи, то письмо-подтверждение будет отослано автору запроса в этом же сеансе (в виде PKT-файла). Если же нет, то будет создано письмо (.msg) автору запроса с атрибутом Direct.

При создании письма с подтверждением (задание EXEC) используется файл \T-$$-<task ident>\t-server.txt, находящийся в каталоге, указанном в переменной Packets (t-mail.ctl). Здесь <task ident> - номер задачи T-Mail. (Например: c:\t-mail\packets\T-$$-1\t-server.txt). В этот файл можно перенаправлять вывод команд, T-Mail добавит к этому файлу содержимое команд из письма. Кроме того, в тексте письма можно использовать "магическое" слово "t-server.log", вместо которого будет подставлено полное имя соответствующего файла t-server.txt.

Например:

To:══ t-mail|password

Subj: Exec

dir \files\*.* >>t-server.log

Вместо "t-server.log" будет подставлено полное имя файла t-server.txt.

Сервер T-Mail'а может формировать копии отчета о своей работе при выполнении Exec на адрес, заданный в переменной T-serverNotify в файле t-mail.ctl.

Дистанционное задание атрибутов письма

Можно дистанционно задавать атрибуты письма, направляемого через какую-либо систему, если известен пароль этой системы. В общем случае при распаковке с письма снимаются атрибуты Local (соответственно перестают действовать Dir, Crash, Imm, Hub, в отдельных случаях Freq), Recv, Send, Transit, Orphan, Kill/Sent. Зная пароль, можно форсировать установку некоторых атрибутов. Это задается специальной командой в 1-й строке письма (после кладжей):

set!<t-password>!attrib <атрибут> [<атрибут>...]

Могут использоваться такие атрибуты: Local, Dir, Crash, Hold, Kill.

Например:

Set!my_passw!attrib Dir Hold

При распаковке письму добавятся атрибуты Dir и Hold. (К атрибутам Dir и Crash автоматически добавляется и атрибут Local, иначе флаг Dir не действует на T-Mail).

Сама строка из письма после обработки убирается и факт такого воздействия фиксируется в log-файле.

Служебные строки в письмах и их обработка

Несколько особых строк в письмах T-Mail воспринимает как служебные и это вызывает его определенные нестандартные действия. Служебные строки должны располагаться в самом начале тела письма. Они действуют только для писем, сформированных на вашей системе (и имеющих, следовательно, атрибут Local). Письмо, содержащее только служебные строки, считается пустым.

Задержка письма

Hold to [hh:mm] [dd[-mm[-yy]]]

Hold to [hh:mm] [dd[/mm[/yy]]]

Появление строки такого вида заставляет задержать упаковку этого письма до наступления момента, определенного в этой строке.

Примеры:

Hold

Hold

Hold

Hold

Hold

to

to

to

to

to

3:00 15/12/92

16-12-92

16/12

4:00 16

4:00

Если не указана дата, то она предполагается текущей. Если не указано время, но указана дата, то письмо задерживается до наступления 0 часов указанной даты. Если в этой строке указан момент времени в прошлом, то письмо отправится сразу.

Принудительная маршрутизация

Route to <address>

Это заставляет при упаковке письма игнорировать все правила маршрутизации и принудительно отправить его на систему с адресом <address>.

Примеры:

Route to 5030/2

Route to /2

Подтверждения об отсылке и доставке письма

В том, случае, если в отсылаемом транзитном письме установлен атрибут AuditRequest (ARq), T-Mail сформирует письмо-уведомление отправителю с указанием времени отсылки и адреса назначения. Для этого будет заполнена форма, содержащаяся в файле audit.tрl. Все это произойдет только в том случае, если переменная Audit_Send_Msg (t-mail.ctl) имеет значение Yes.

Если в письме, прибывшем на вашу систему и адресованном на один из адресов вашей системы установлен атрибут ReturnReceiptRequest (RRq), T-Mail сформирует письмо автору этого письма с подтверждением доставки. Для этого будет заполнена форма, содержащаяся в файле retreq.tрl. Все это произойдет только в том случае, если переменная Audit_RRQ_Msg (t-mail.ctl) имеет значение Yes.

Файлы audit.tpl и retreq.tpl должны находиться в том же каталоге, что и t-mail.ctl. Вместо служебных полей в этих файлах T-Mail подставит следующие значения:

~U √ имя автора письма;

~P √ имя адресата;

~N √ адрес адресата;

~A √ собственный адрес;

~L √ адрес, куда письмо отослано (для audit.tpl) или откуда принято (для retreq.tpl);

~Sполе Subj письма;

~D√ екущая дата;

~T√ текущее время.